查看原文
其他

Drivechian数字资产发行侧链:BitAsset

LayerTwo Labs 2023-10-09

将“ERC20”代币和其他CryptoFinance引入比特币,在其自己的专业链上。

  1. 动机

我们知道数字收藏品有市场(1)。

它与货币市场截然不同。让我们检查两类用例:数字艺术和资产支持令牌。

A.数字艺术

从某种意义上说,区块链“数字艺术”现在是可能的。人们很感兴趣:我们在交易对手(当然还有以太坊上的密码猫)交易的“创世纪咒语”/“稀有佩佩”/“比特玉米”“卡”中看到了这一点。

上图:“球体之书”应用程序的截图,该应用程序有助于在对手方购买/交易创世纪卡的咒语。取自密码守护者的这篇文章。

纵观历史,人们交易收藏品(包括艺术品)。今天我们有“棒球卡”,和“大都会歌剧院”,甚至创世纪街区报纸。

收藏品通常是财富或生产成就的可信信号。我们确实欣赏它们,也许只是因为感知它们的经历,或者它们激发的记忆(就像我们经常发现家庭相册或梦幻足球奖杯一样)。

B.“资产支持”代币

一、灵感

尤其是这一部分,最初的灵感来自尼克·萨博和布鲁斯·芬顿之间的推特争论,以及布鲁斯后来对这个主题的全面咆哮(在这一部分写作的第二天)。布鲁斯和我独立发现了非常相似的论点,让我相信我们已经在真理上趋同。

后来事情甚至 变得更加 激烈;布鲁斯现在正在成为侧链、无许可创新和开放式科学实验的效用的光辉典范!

ii.股票及债券市场

现实世界包含“股票市场”——这些是“股票市场”,人们可以在其中交易各种公司的所有权股份。这些市场很有影响力——有时,它们主导着公众意识。

不太为人所知,但可以说更重要的是“债券市场”(贷款和债务市场)。

这些“资本市场”对现代经济至关重要,它们允许不同的人群(特别是:谨慎的储蓄者、专注的企业家和职业投机者)进行专业化和合作,这些群体共同决定了我们的经济应该生产哪些商品和服务。

上图:维基百科纽约证券交易所外的“充电公牛”雕像。

iii.区块链技术可以提供帮助吗?

区块链能否复制资本市场的功能?它能有效地做到这一点吗?

首先,我们可以预期会失去抗审查的特性(比特币拥有的特性,见“如果需要可信的第三方,主要的好处就会丧失”)。这是因为资本市场意味着一些存在于物理世界(即数字“区块链土地”之外)的底层企业。因此,它合法地存在于某些地理/政治管辖区。该管辖区将通过法律,公司必须遵守这些法律(例如,“corp不能向代币持有者支付股息,除非这些持有者已被KYC/AML”)。因此,BitAsset侧链上的任何“股份”可能与以前完全一样。

尽管如此,这些股票的创建和交易过程似乎很繁琐。

为了上市,企业家首先需要支付费用——这些费用因公司规模而异,但通常在100,000美元左右。还有法律文书工作(针对交易所、州和联邦政府)。此外,还有一个最小规模——纽约证券交易所要求公司的预存量市场价值至少为1亿美元(NASDAQ要求4500万美元)。此外,公司必须至少有400名(上市前)股东,初始股价必须高于一定的美元价值(4美元),他们过去三年的税前总收入必须高于1000万美元。然后他们必须得到纽约证券交易所董事会的批准。那么全球上市还有更多要求!

一旦公司上市,它必须支付年费。如果投资者想交易上市资产,他们必须支付经纪费、SEC费、金融监管局费用等。这些费用差异很大,但似乎平均每笔交易约为5美元,每股交易0.01美元。此外,为了进行交易,投资者需要在商业银行有一个支票账户——仅此一项要求就立即排除了世界上“没有银行账户”的人口。商业银行收取自己的费用!

区块链可以更方便。先进的区块链(即闪电网络等)也可以更便宜。

我们知道Overstock已经发行了“区块链股权代币”,因此至少有一些供应来满足投资者的需求。我们知道特拉华州最近通过了一项法案,允许军团在区块链上跟踪他们的股东,因此对这一领域有一些兴趣。

所以似乎值得一试。

iv.“资产支持”代币

考虑所谓的“第三种”情况:[表面上]可以兑换某种资产的代币,比如“一克黄金”或“一加仑石油”等。

如果你对所有这些代币类型感到不知所措,那么我有一个好消息:这些“商品支持的代币”在经济上与我们刚刚讨论的“股权代币”没有区别。这是因为股权本身一种权利…对公司资产的要求。

诚然,在股权的情况下,偿还的金额预计会因支付而异,而在(例如)黄金支持的情况下,一个代币应该等于一些固定数量的实物产品。但这并不是真正的区别!因为即使在“加密黄金”的情况下,发行人也总是有违约的可能性,因此实际上只能赎回一些(或根本没有)黄金。(或者,黄金可能被联邦政府没收并关闭,就像2009年的e-Gold一样。)在这两种情况下,这种偿还的不确定性取决于完全相同的因素:[1]对做“后盾”的企业的审慎管理和[2]经济可行性。

所以“第二种”和“第三种”类型的代币其实是一样的。

事实上,“第四种”也是如此,包括“航空里程”、“万豪奖励积分”和“魔兽世界黄金”。所有这些都是“资产支持”代币——所涉及的资产恰好是一项服务(航班或住宿)和/或完全数字化的东西(魔兽世界游戏体验)。

事实上,所有四种类型的代币都非常相似。因此BitAsset侧链可以支持所有四种类型。

但是第四种类型在区块链上是否有用,而不是私有服务器?

目前还不清楚。例如,我们知道每年有很多“奖励积分”无人认领,这些积分实际上是有价值的,大多数人很乐意通过KYC/AML的过程来获得它们。我们还知道,公司很乐意出售“积分”,因为这能促进销售和现金流(就像出售礼品卡一样)。此外,奖励积分系统通常外包给昂贵的管理员,因此区块链可能更便宜。对于某人来说,解决客户服务、密钥管理和整体用户体验等令人困扰的问题至关重要。

  1. 2.规格

我们的区块链将是一个标准的比特币侧链——即比特币的GitHub分支加上一些新功能。具体来说,我们将使用一些新的交易,特别是新的输出

A.新功能

这是我的关键功能候选列表。当然,以后可以添加更多。

# | Description
1 | create crypto-collectible (fixed issuance, fixed description)
2 | create crypto-token (has an owner, who can issue/destroy tokens and edit the token description)
3 | send crypto-asset
4 | Dutch-auction a UTXO
5 | reverse-Dutch-auction a UTXO
6 | claim some of an auctioned UTXO (ie, participate in a crowdsale)
7 | place DEX order (offer to trade X asset for Y asset)
8 | claim DEX order (accept a placed offer)

这个功能集允许我们复制三步ERC20公式:[1]创建一些代币,[2]“众筹”它,[3]在某个地方“上市”(使其具有流动性)。

其中一些新特性将通过事务版本而不是新的操作代码更好地实现。这是因为它们具有跨越多个输出的效果。具体来说,#1和#2都涉及创建具有两个相关输出的事务(见下文)。并且#6和#8涉及在一个txn中花费两个相关输出。

所以我可以想象总共有三个新的操作代码(90:“操作拆分”[可选],91:“放置dex订单”,92:“荷兰拍卖这个UTXO”)和三个新的交易版本(10:“创建新资产”,11:“索赔DEX订单”,12:“荷兰拍卖出价”)——纯粹为了清楚起见,我从90开始计算“操作代码值”,从10开始计算“tx版本”。

B.创造新资产

首先,必须创建资产。

一、基础知识

以下是事实:

  • 创建是通过使用“CreateAsset”txn(txn,版本号为10)触发的。(每个txn只能创建一个新的BitAsset。)

  • 这个txn的第一个输出是一个“控制器”输出,正好是“一个比特资产”*。

  • 第二个输出("genesis")实际上是所有新资产的创建。由于输出是8字节(并且8字节最多可以计算到~1840京),那么在这个阶段最多可以创建~1840京的新资产。如果资产是非艺术,那么可以在后面的txn中创建更多。(3)

  • 任何其他输出都是正常的BTC输出。这些将用于通过更改地址支付自己,因此向矿工支付tx费用。

  • 这些实际上不再是中本聪了,因为中本聪是BTC的一个单位,而这些不是。

正如我将在后面的部分解释的那样,并非所有这些输出都将被解释为BTC输出。相反,对于前两个输出,“类型”将切换为新创建资产的类型。按照正常的比特币标准,这个txn似乎花费的BTC比它加载的多,但这里的情况并非如此,因为前两个输出不会被解释为“比特币”。

上图:“版本10”事务。我将多次使用这种格式-具有特殊“前缀字节”的事务。

这个项目可能应该禁止0价值投入的存在或支出。这是因为这个项目旨在创造数字稀缺资产,而如果你可以像花“一”一样花“零”(换句话说,如果“拥有零的资产”与“拥有非零的资产”有意义地相似),这个目标就更难实现。

二、标识符

资产由89字节的数据有效负载定义:

7 bytes -- Unique ticker symbol
50 bytes -- Tagline
32 bytes -- Arbitrary payload

虽然是共识的一部分,但前两个字段(57字节)仅用于人类用户界面的原因。(有关更关注身份/域名的内容,请参阅我在身份侧链上的帖子。)57个人字节是ASCII编码的(4),并且是强制性的,因此如果有未使用的字符,这些字段必须用前导空格填充。代码旨在促进交易,标语预计将有助于澄清资产的目的或交换意见。

在UI中,我们可能会找到新的表情符号来描述非字符ascii符号(#1-31、#127等)。

此外,如果使用了“误导性”容易混淆的符号(如#139-#141、#220/223、#249/#250等),那么我们应该出现一个警告,提示用户仔细检查票证符号。我们也可以始终同时显示股票代码和资产编号(见下文)。

最后一个字段旨在包含一些任意JSON数据的双SHA256。这个JSON可以是任何大小,可以包含任意数量的元素——它可以是公司章程,也可以是照片或描述性文本段落。或者它可以是所有这些,一起序列化。或者它可以是HD电影或2000TB硬盘驱动器的哈希值。哈希承诺是共识的一部分,但内容显然不是。

三、控制器输出

对于加密资产(非加密艺术),txn的第一个输出是“控制器”输出。它指定资产的“管理员”-拥有此输出的人就是管理员。

(对于加密收藏品(即加密艺术),创建者明确地将资产属性/数量指定为不可变的。因此没有控制器输出。然而,为了易于实现/代码模块化,我假设“在幕后”生成输出更简单,但只需将其发送到某些可证明不可花费脚本。)

管理员可以:

  1. 在正常事务中使用此输出(就像他们发送satoshi一样),以便将其发送到某个地方。这允许管理员将控制权转移给新管理员,更新他们的密钥对,甚至通过原子交换出售控制权。

  2. 在新的“创建/更新资产”事务中使用此输出——共享相同的股票代码并选择“控制器输出”作为输入。这允许管理员做两件重要的事情:[1]编辑标语和/或有效载荷(即初始87的最后82个字节);和[2]发布新令牌(在新的创世输出中)。

这种设计允许资产所有者在管理员“更新”他们拥有的资产时自动收到通知。这些更新可以用来提示用户采取一些行动。例如,50字节的标语足够大,可以包含一个缩短的超链接(例如bitly.com等)。管理员可以更新链接,或者设置和更新标志,提示用户访问URL,以便他们可以从公司检索消息(关于投票/股息/公司行动),或者新的JSON数据等。

四.创世纪产出

创世输出是所有新资产首次出现的地方。它被定义为加密资产“Create”txn中的第二个输出。

然后可以在新交易中选择此输出,允许输出被使用和流通(就像在比特币交易中一样)。

五、唯一资产编号

创建时,资产将被赋予一个永久的、唯一的ID号,用于DEX(参见下一节)。

“比特币”本身就是一种资产,并且具有数字“1”。

其余数字按时间顺序分配(5)。这是为了在获得编号较低的资产时创造一些“嗡嗡声”、“声望”和历史/怀旧价值。这也是为了效率——例如,我们不需要使用完整的7字节来描述整个资产空间,直到第一个43亿股票代码被认领之后。

这是编码:

* The first 252 asset numbers are encoded with a single byte.
(ie, "byte-value: 0" represents the first asset [BTC]; and "byte-value: 251" represents the 252nd asset).

* The next 65,537 asset numbers are encoded with one initial byte set to "252", followed by a two-byte unsigned integer.
(Thus, [252,0,0] is the 253rd asset; [252,0,1] is the 254th asset, and [252,255,255] is the 65,789th asset (being 252 + 1 + 65,536)).

* The next ~16.8 million asset numbers are encoded by setting the initial byte to "253", and then using 3-bytes to count from 1 to 16,777,216.
(This defines assets #65,790 [253,0,0,0] through #16,843,006 [253,255,255,255]).

* The next ~4.29 billion assets numbers are encoded by setting the initial byte to "254", and the using 4-bytes to count from 1 to 256^4.
This defines asset numbers #16,843,007 through #4,311,810,303, because 4,311,810,303 = (16,843,007 + (256^4)).

* Finally, setting the initial byte to "255" allows the user 6-bytes to use for counting.
Thus we define asset numbers #4,311,810,304 - #281,479,288,520,960.

(标识符总共为:1、3、4、5和7个字节。)

因此,我们已经定义了多达281万亿的数字…足以让120亿人每人创建约23,500个独特的资产。

(我想如果我们需要更多,我们可以创建第二个BitAsset侧链。)

六、示例资产列表

这里我给大家举个例子“资产清单”。

这只是一个随机的例子,但我认为它可能有助于为项目提供一些形状和方向:

# |Ticker|Art| Tagline | Payload | Qnty Issued|
--|------|---|--------------------------------------------------|-----------|-------------|
0 BTC * "Bitcoin" "9o23efs..." N/A
1 BRIGHTS * "Bragging Rights" "4mvw010..." 1,000,000
2 VISA "VISA Corporation - CryptoShares bit.ly/2Hq8ZEB" "v4u4rgl..." 500,000
3 ELF.R * "Three rings for the Elven-kings under the sky" "89oiejw..." 3
4 DWARF.R * "Seven for the Dwarf-lords in their halls of stone" "xgys748..." 7
5 MEN.R * "Nine for mortal men doomed to die" "hf2p0sv..." 9
6 ONE.R * "One ring to rule them all, one ring to find them" "378v0vj..." 1
7 GE "General Electric Co - Common Stock bit.ly/2xXPQue" "eou34j8..." 225,000
8 UA.RP "United Airlines - Reward Miles" "98jHc93..." 50,000,000
9 UA.A "United Airlines - Class A CryptoShares" "mJvOI3s..." 3,000
10 JENNUM * "Jenny, I got your number!" "2r8s8pg..." 8,675,309
11 R.PEPE * "PepeCash - Official cash of 4chan and /r/btc" "ufu9vs4..." 111,111,111
12 LUCK * "Good Luck. The best luck around, in fact." "pvh04h0..." 7,777,777
13 poke006 * "Charizard" "984uv9e..." 40,000
14 poke100 * "Voltorb" "0ojev4e..." 80,000,000
15 poke150 * "Mewtwo" "wojqlkk..." 1,250
16 XOM.o1 "Barrels of oil - Exxon Mobil bit.ly/2sPJ0Rq" "8ve0rvi..." 8,400,000
...

现在已经创建了一些BitAsset,让我们讨论如何将它们相互发送

C.特定资产产出

首先,我们将讨论定期发送,例如将资产发送到/从网站发送,或将其发送到自己的个人帐户。

这可以在没有任何新的交易版本或任何花哨的操作代码的情况下完成。然而,我们需要“特定于资产的输出”。

一、基础知识

通过“特定于资产的输出”,我的意思是BitAsset侧链将具有输出,这些输出可能看起来彼此相似,但实际上是完全不同的类型。换句话说,有几个“UTXO集”(6个)(每个发出的资产一个),而不是只有一个UTXO集。(正如我将解释的那样,这是一个权衡,消耗更多的CPU工作,但需要更少的带宽和磁盘空间。)

“BTC”资产(或者更准确地说,“BTC资产类型的每个输出”)在几个方面是独特的:它是“第一”类型;它是“默认”类型;它是用于向矿工支付txn费用的资产。但除此之外,BTC作为一种资产类型并不引人注目。

在下图中,一个典型的BTC交易在左边(很明显,BitAsset侧链可以支持这些“传统”交易)。在第三个块中创建了一个新资产。

(在第四个区块中,有多个资产的单个交易。蓝色资产组合,绿色和红色拆分(可能是支付变更地址)。)

一旦资产被创建,它们就存在于一个“创世输出”中。然后可以转移、拆分或重组该输出,就像任何比特币输出一样。

虽然以资产计价的txn费用会很有趣,但对矿工来说会很复杂,并给他们带来奇怪的义务。因此,通过简单地不允许这样做来阻止这一点。具体来说:如果txn花费了一个输出,它就会被消耗掉。因此,如果txn加载了“20 Asset Z”,然后没有将它们放入输出中,它们就会被简单地销毁。

这种架构使资产具有常规比特币txns的所有美妙属性(酷脚本操作、nLockTime、闪电网络等)。它也是(希望)一个简单的模块化设计。

二、跟踪资产类型

为了使每个事务尽可能紧凑,协议尽可能多地推断信息。具体来说,它想知道输出是什么类型,而不询问(因为这会消耗每个txn的许多字节)。

幸运的是,正如我将解释的那样,全节点不需要询问。然后总是知道这些信息。

在传统比特币中,当交易选择多个输出[以便将它们作为输入]时,[对txn]可用的总BTC值被求和。

在这里,它的工作方式相同,只是事务将知道所选择的输出类型的多样性及其顺序(它们首先出现的顺序,在事务的“输入”侧从左到右)。相同类型的资产被求和,并且事务输出被假定为具有与输入相同的类型序列。

三、简单的方法

从这里开始,最简单的事情就是每笔交易只允许移动一个[非比特币资产(nBA)。

还要求:

  • nBA总是花和加载一样多的nBA。即,不仅禁止nBA-txn费用,还禁止破坏资产。所以“总nBA输入值”但等于“总nBA产出值”,否则交易将被视为无效。

  • 在TxOut排序中,所有nBA输出都列在比特币输出之前。

通过这种方式,协议将始终知道哪些输出是资产输出。因为只有两种类型可以同时加载(一种是nBA类型,另一种BTC),协议也将准确地知道这些输出是哪种类型的资产。(因为协议知道第一个输出是资产输出;然后,如果它没有花费所有资产价值,它知道下一个输出也是资产输出;然后最后,任何输出[在资产输入值的累积总和已经用尽之后]都将是BTC输出)。

四。或者,一种复杂的方式

在实践中,我认为用户一次大多只会花费一项资产。

但是,为了好玩,也为了展示“特定资产输出”的灵活性,我将描述一种一次发送多个资产的方法。它有时需要一个新的操作码“OP Split”。这个操作码实际上本身并不用作操作码——换句话说,它不用于阻碍输出并对其支出施加限制。相反,操作码用于帮助网络推断输出类型。

当txn为每种资产类型仅“支付”一个输出时,我们将需要零总字节来表达资产类型。但是,如果用户想要将资产“拆分”为两个或多个输出,我们将需要每次拆分一个字节(“OP Split”)。

下面,我举了一个复杂的例子,其中选择了六个输出(左列),它们有四种不同的类型(橙色、红色、绿色和蓝色)。然后我展示了在六个不同的场景下会发生什么。

数字序列表示将键入事务的TxOut部分的8字节“value”字段的值(见下文)。星号表示在输出脚本的开头使用OP Split。

现在,让我们尝试利用区块链的基本智能合约能力。

D. DEX命令

让我先谈谈DEX订单,然后再谈DEX拍卖。

一、简介

我们如何交易资产?嗯,一种方法是使用“托管交易所”,如Poloniex或ShapeShift.io。

上图:这个流行的迷因问“硬币什么时候会在Poloniex上市?”。

流动性对资产的成功至关重要,“并非所有的流动性资产都是成功的,但每一个成功的资产都是流动性足够强的”。

虽然有效,但MEs确实有缺点。他们可以拒绝发行硬币,而且他们从事不正当的商业行为(7)。但是他们很方便。

我认为理想的情况是同时拥有MEs和“DEX”(即“去中心化交易所”)。区块链选项将始终可用,作为后备。这可以防止MEs否决资产。它还消除了ME的自由裁量权(以一种好的方式)。换句话说,MEs必须列出所有资产,因为如果他们不这样做,这并不意味着该资产被压制;这只意味着与该资产相关的交易费用将流向侧链矿工(而不是他们)!

ii.下订单

DEX订单首先“下达”(由一个交易对手),然后“接受”(由第二个交易对手)。

要下DEX订单,用户只需将该输出用于一个特殊脚本。

例如,假设Q是BitAsset,Alice想以“4BTC”的价格出售“780 Q”。并说她打算支付0.05BTCtxn费用(为了下这个DEX订单)。

Alice可能会选择两个未使用的输出,一个包含2,000 Q,另一个包含3BTC。然后她将创建三个新输出。

第一个分配1,820(这将被解释为Q资产),她将发送这1,820 Q回自己作为改变,因为她加载超过她打算出售。

然后,她将向第二个输出支付780(如果使用了上面的“复杂方法”,则使用OP Split,但不执行任何操作)。这780 Q将支付给OR(OP_PlaceDexOrder,OP_Dup…OP_CheckSig)形式的输出脚本。第一个子句(在OR合同中)是DEX订单(下面解释);第二个子句是一个完全“传统”的支出,允许Alice随时“取消”订单并收回她的780 Q。

在DEX顺序中,Alice指定:

n-bytes The ID of the desired asset (n-bytes, recall the "Unique Asset Numbers" above).
8-bytes Her desired quantity.
n-bytes The script she would like these coins to be spent to.

注意事项:

  • 被此操作码锁定的输出只能在“版本11”事务中使用。

  • 实际上,第一个字段(“所需资产的ID”)大约有一半的时间是“比特币”,在这种情况下,它将只消耗一个字节。

  • 后两个项目类似于“经典TxOut”。

最后,交易的第三个输出当然会花费2.95BTC从Alice回到她自己作为零钱。因此,她支付了预期的txn费用(0.05BTC),并恢复了她加载的3BTC。

iii.索赔命令

Bob使用“版本11”交易申请DEX订单。

版本11 txns在开头有一个额外的36字节插槽,如下所示(右键单击->“在选项卡中查看”以获取全分辨率图像):

使用新的36字节,Bob将引用Alice的“放置DEX订单”UTXO(因为这是32字节散列+4字节计数器)。

通常,要使V11 txn有效,适用以下新规则:

  • 必须通过选择未使用的输出来填充第一个槽。

    • …并且该输出必须是现有的DEX订单。即,它必须具有“Op Place DEX”操作码,后跟[AssetType, Quantity,Script]信息。

  • Bob必须通过选择自己的UTXO并将其用作输入来“支付”[AssetType,,]的[, Quantity,]。这些资金将流向Alice。Bob必须小心,并在必要时为自己构建适当的更改输出。

如果V11事务有效,则会发生以下情况:

  • Bob可以花掉Alice的所有资产。换句话说,在V11事务本身中,他可以加载Alice的“780 Q”并将此Q花费到他希望使用V11事务创建的任何输出脚本。

  • [AT, Q,S]信息(上图)在另一个输出中作为信息开始时,将自动转换(通过Bob的M4事务)为它自己的真正输出。Alice将通过放置的DEX订单得到她所说的UTXO——她的订单将由Bob的事务逐字(并自动)转录为它自己的输出。

(如果“隐含的TxOut 0”概念太难了,那么更简单的方法是强迫Bob将TxOut 0写出作为Alice请求值和脚本的实际逐字副本。但这无缘无故地浪费了区块链空间。)

E. DEX拍卖

一、简介

“去中心化拍卖”允许用户在区块链本身进行“众筹”(“ICO”等)。中心化的替代方案是有人简单地建立一个网站和一个用于收钱的多重签名钱包,并手动跟踪所有传入的付款。DEX拍卖需要更少的信任,更透明,并且无需许可(因为任何用户都可以这样做)。

我在这里对它们的实现,将在以下方面与常规DEX订单(上一节)非常相似:

  • 首先,有人会将输出标记为待售(使用新的OP代码)。

  • 卖方将指定脚本,他希望销售收益最终发送到哪里。

  • 其他个人将使用新的(在下面的第一个示例中,“版本12”)事务来声明此输出。

区别在于:

  • 在DEX订单中,买方必须购买全部产出;拍卖则不然。

  • DEX订单涉及一个卖家和一个买家,而拍卖将涉及一个卖家和多个买家。

  • 因此,我们可以预期一次会有很多出价(否则,卖家只会使用DEX订单,而不是DEX拍卖)。

二、拍卖ID

每个拍卖都需要一个唯一的ID号。这是因为这个区块链必须能够一次处理[1]多个拍卖,以及[2]这些拍卖的多个同时出价。因此,在所有这些动态中,该协议将需要一些恒定的标识符。

因此,拍卖人必须为拍卖分配一个4字节的ID号。ID可以是另一个拍卖当前未使用的任何ID。如果两个交易试图使用相同的ID,则后一个交易无效(因此该块无效)。当拍卖结束时,其ID将返回以供抓取,并且可以再次使用。从这个意义上说,拍卖ID也有自己的“UTXO集”(就像每个资产一样)。

拍卖ID应该特定于每种拍卖类型。换句话说,如果“92_12”和“93_13”是两种不同的拍卖类型,那么应该允许用户使用ID“0x0005”进行92_12拍卖,然后立即进行同样使用“0x0005”的93_13拍卖。这是为了解决一个奇怪的问题,即一个古怪的人同时发送40亿拍卖垃圾邮件,以耗尽活动拍卖ID的供应。作为回应,我们只需重新分配一个新的OP代码(例如,分配“OP97_17”以具有与已经分配的“OP93_13”完全相同的行为)——这将立即为我们提供另一个40亿ID来使用。

三、价格格式

对于DEX订单,我们将一个输出交换为另一个输出——因此“市场价格”可以通过简单的算术获得。

然而,对于拍卖,在许多情况下我们希望有实际价格。所以我将标准化一个8字节的“拍卖价格格式”。价值范围将低至每项资产(8)的(1/10,000个satoshi,或“1尘埃”),高至每项资产(1840万BTC)。这涵盖了所有合理的值(9)。

我在8个字节中这样做,通过将“灰尘”定义为“satoshi的1/10,000”。然后,我强制所有出价以“每资产BTC尘埃”表示。

由于灰尘是中本聪下面的四个小数点,并且由于每个中本聪是整个BTC下面的八位小数,因此出价以“BTC为单位,使用十二位小数”表示。由于8字节整数的范围可以从1到256^8(并且从256^8~=1.84e19),您可以希望了解可能价格的范围。

这里我展示了一些工作:

256^8 = 1.84e19 [max value]

[expressed numerically]
0 1 [digit counter]
1234567890123456789 [digit counter]
18400000000000000000. [max value]
|
| 0 1
/ 123456789012 [twelve decimal places]
18400000.000000000000.
18,400,000.0000,0000,0000. [add commas]
18,400,000. BTC [max: 18. million BTC]
.0000,0000,0000.
.0000,0001, [one satoshi]
.0000,0000,0001 [min: one "dust". 1/10000th satoshi]

三、两个例子

下面我将为一种拍卖提供两个例子,“荷兰拍卖”。这是首次公开募股甚至US国债的流行拍卖方式。

但是,用户并不局限于这些,强烈鼓励用户开发自己的拍卖类型,并通过软分叉添加(10)。

  • 首先,“92_12”,这里是一个简单的、传统的第一价格荷兰拍卖。

  • 第二,“93_13”,这里更复杂的秒价版本。

  1. 3.其他功能

A.投票和股息支付

我很惊讶地看到这些功能在Ravecoin白皮书和Bruce的视频漫谈中得到强调。

虽然它们重要的特性,但我认为任何协议的共识层都不需要它们(11)。

相反,我相信最好在协议之外进行。

正如我提到的,我允许管理员通知所有资产所有者并提示他们采取一些行动(通过更新资产的标语/有效负载,见上文)。

对于股息支付,管理员将指定一个“除息日期”,可能是通过指定一个区块编号。然后,每个人都可以使用区块链准确了解在给定时间哪些密钥对(或其他什么)拥有资产。有问题的公司将建立一个指定的位置(例如,网页)。用户将访问它并提交一条签名消息——要求支付股息的发票。然后,组织可以处理这些数据并管理付款。

这个过程可以在公司选举中重复——管理员设定投票日期,用户被提示访问网站并提交签名选票。然后公司公布选举结果,可能会用花哨的密码来证明他们做得很好。

B.资产“群体”

没有什么能阻止第三方构建私人管理的资产“组”。

更有趣的是,有人可以注册一个本身就是列表的资产。然后,如果它是一个资产列表(例如S&P 500),他们可以管理这个列表。或者,他们可以有一个艺术的、不可变的列表(例如,“151口袋妖怪”或其他东西),然后这个列表将永远固定,并且不会被篡改。

C.第三方触发器/游戏

显然,资产的所有权可能会触发第三方游戏中的任意事件。有人可以拥有(或下注)“皮肤”,或“魔兽世界黄金”。对用户来说,这就像签署比特币消息一样简单。

结论

不可否认,投资者对非货币区块链代币(我称之为“比特资产”)感兴趣。这些代币主要有两种形式:[1]一种具有不可变特征的“加密艺术”形式;[2]一种“资产支持的代币”形式,可以让管理员与所有者持续互动。

我提供了一种支持这两种类型的侧链设计。BTC用于支付网络交易费用,但可以创建、交易或拍卖新资产。令人鼓舞的是,基本功能(“创建”和“花费”资产)最容易添加,另一个可以在以后作为软分叉持续添加。开发甚至可以自筹资金,侧链的创建者为自己分配稀缺的“吹牛权”。

更新(6月6日):Coinbase,Circle Vie为加密证券创建经纪公司

更新(6月14日):SEC已经提供了一些关于代币何时可能满足证券豪伊测试的指导。马尔科·桑托里解包 两次。

脚注


  1. 我们不完全确定其中有多少是“合法的”(即“高效的”和“可持续的”),但它肯定存在。↩

  2. 以每日交易量和总市值衡量,世界债券市场实际上比世界股票市场大很多倍。↩

  3. 然而,如果用户试图将多个巨大的输出组合成一个输出,他们可能会遇到整数溢出。坦率地说,1840京不应该足够吗?↩

  4. 显然,日本用户(例如)可能更喜欢使用“JIS X 0208”或Unicode进行编码,他们绝对可以也应该这样做。我指定ASCII,因为我关注数字资产和一些现实世界的想法或资产之间明确的[共识]联系。↩

  5. 如果在同一个区块中创建了两个资产,没有问题。我们只是做比特币所做的事情,如果它们在区块的默克尔树中更“向右”,则指定输出“稍后”发生。↩

  6. 当然,在实践中,某个地方的单个数据库中可能仍然存在一个UTXO“集”。但我的意思是,UTXO将有多种类型,txn验证软件将立即意识到这些类型。换句话说,存储在本地的UTXO集可能需要有一列额外的列(实际上是两列,请参阅下面的“控制器”输出)。任何强制性的“UTXO承诺”都应该包含这些信息,因为否则会更有帮助——这些信息永远不会包含在txn中,并且总是从上下文中推断出来的。↩

  7. 根据我不完善的2016年信息,Poloniex/ShapeShift的大部分商业模式都涉及[,我们称之为]内幕交易,和/或敲诈成功的ICO(向他们收取巨额[美元…总未偿硬币的一部分!]在交易所上市)。有趣的是(正如我们刚刚提到的),这似乎有点类似于“真实”交易所的商业模式。↩

  8. 当然,没有人能以低于中本聪的价格获得链上支付。“每项资产一粒灰尘”的价格可能意味着一次必须购买至少一万件资产。↩

  9. 在高端市场,预计没有任何资产的售价会超过1840万BTC,因为(首先)没有人会拥有这么多BTC;它代表(尤其是在考虑到可能的“损失BTC”之后)几乎整个流通供应。在低端市场,“中本聪的1/10000”是一个极其便宜的数量,按2018年的美元计算,它的实际价值不可能达到0.01USD——只有当比特币本身达到每枚1e12便士(1.0e10或10.0e9美元)的价值时,也就是100亿USD[2018PPP]。↩

  10. 仅受制于软分叉的通常条件:[1]新特性在完整节点上不会造成太多计算负担,特别是[2]新特性不会干扰任何现有特性。↩

  11. 毕竟,区块链技术不能“神奇地”强制行动[股息支付/CEO解雇],除非整个公司系统(包括所有销售、会计、现金流、劳动力等)都在区块链上。但是,对我来说,这样的案例本身就是在描述一个新的区块链。具体来说,一个新的侧链[做了拟议中的加密公司应该做的事情]。↩

原文链接:https://www.truthcoin.info/blog/bit-assets/



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存